/**
 * 编程获取两个指定字符串中的最大相同子串并打印出来。
 *  如： s1="asdafghjka", s2="aaasdfg" 他们的最大子串为"asd"
 *  提示： 将短的那个串进行长度依次递减的子串与较长的串比较。
 */

package com.blank.task11;

public class ContainCharTest {
    public static String getMaxiMunStr(String str1,String str2){
        //用三目运算符号进行判断处最大、最小字符串
        String maxStr = (str1.length()>str2.length()) ? str1 :str2;
        String minStr = (str1.length()>str2.length()) ? str2 :str1;
        //最大子串
        String maxiMunStr = "";
        //子串
        String subString = "";
        if(maxStr.contains(minStr)) return minStr;
        int i = 1;
        boolean flag = true;
        while (i<minStr.length()){
            for(int j=0;j<=i;j++){
               subString = minStr.substring(j,minStr.length()-i+j);
                if(maxStr.contains(subString)){
                    maxiMunStr = subString;
                    flag = !flag;
                    break;
                }
            }
            if(!flag){
               break;
            }
            i++;
        }
        return maxiMunStr;
    }

    public static void main(String[] args) {
        String s1 = "asdafghjka";
        String s2 = "aaasdfg";
        String s3 = "";
        s3 = getMaxiMunStr(s1,s2);
        System.out.println(("".equals(s3))?"没有最大子串":("最大子串为"+s3));

    }

}
